/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package GUI.SQL;

import java.awt.Color;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.SwingUtilities;
import javax.swing.UIManager;
import koneksi.SQL.Koneksi;
import model.DataChart;
import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartPanel;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.chart.plot.XYPlot;
import org.jfree.chart.renderer.xy.XYLineAndShapeRenderer;
import org.jfree.data.xy.XYDataset;
import org.jfree.data.xy.XYSeries;
import org.jfree.data.xy.XYSeriesCollection;

/**
 *
 * @author rosi
 */
public class GrafikBulan extends javax.swing.JFrame {

    private String namaTabel1;
    private String namaTabel2;
    private String idBulan1 = "";
    private String idBulan2 = "";
    private String bulan;
    private String bulan2;
    private String tahun;
    private String subBulan;
    private String subBulan2;
    private String subTahun;
    private double jumlah = 0;
    private double jml = 0;
    private ArrayList<DataChart> arrayDataChart;

    public GrafikBulan() {
        initComponents();
//        jDesktopPane1.setVisible(false);
//        this.getDataPenjualan();
    }

    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
    private void initComponents() {

        jPanel1 = new javax.swing.JPanel();
        jLabel2 = new javax.swing.JLabel();
        jLabel3 = new javax.swing.JLabel();
        comboBulan = new javax.swing.JComboBox();
        comboTahun = new javax.swing.JComboBox();
        jLabel4 = new javax.swing.JLabel();
        comboBulan2 = new javax.swing.JComboBox();
        buttonLihat = new javax.swing.JButton();
        jPanel2 = new javax.swing.JPanel();
        jLabel1 = new javax.swing.JLabel();
        jLabel5 = new javax.swing.JLabel();
        jLabel6 = new javax.swing.JLabel();
        jLabel7 = new javax.swing.JLabel();
        buttonBack = new javax.swing.JButton();

        setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
        setTitle("Grafik");

        jPanel1.setBackground(new java.awt.Color(-1,true));
        jPanel1.setBorder(javax.swing.BorderFactory.createTitledBorder("Data Penjualan"));

        jLabel2.setText("BULAN");

        jLabel3.setText("TAHUN");

        comboBulan.setEditable(true);
        comboBulan.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Januari", "Februari", "Maret", "April", "Mei", "Juni", "Juli", "Agustus", "September", "Oktober", "November", "Desember" }));
        comboBulan.setSelectedIndex(-1);
        comboBulan.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                comboBulanActionPerformed(evt);
            }
        });

        comboTahun.setEditable(true);
        comboTahun.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "1997", "1998", "1999", "2000", "2001", "2002", "2003", "2004", "2005", "2006", "2007", "2008", "2009", "2010", "2011", "2012", "2013", "2014" }));
        comboTahun.setSelectedIndex(-1);

        jLabel4.setText("sampai BULAN");

        comboBulan2.setEditable(true);
        comboBulan2.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Januari", "Februari", "Maret", "April", "Mei", "Juni", "Juli", "Agustus", "September", "Oktober", "November", "Desember" }));
        comboBulan2.setSelectedIndex(-1);

        buttonLihat.setText("LIHAT GRAFIK");
        buttonLihat.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                buttonLihatActionPerformed(evt);
            }
        });

        javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1);
        jPanel1.setLayout(jPanel1Layout);
        jPanel1Layout.setHorizontalGroup(
            jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel1Layout.createSequentialGroup()
                .addContainerGap()
                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                    .addComponent(jLabel2)
                    .addComponent(jLabel3))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
                    .addComponent(comboTahun, 0, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                    .addComponent(comboBulan, javax.swing.GroupLayout.PREFERRED_SIZE, 119, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addGap(18, 18, 18)
                .addComponent(jLabel4)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(comboBulan2, javax.swing.GroupLayout.PREFERRED_SIZE, 137, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(buttonLihat))
                .addContainerGap(119, Short.MAX_VALUE))
        );
        jPanel1Layout.setVerticalGroup(
            jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel1Layout.createSequentialGroup()
                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                    .addGroup(jPanel1Layout.createSequentialGroup()
                        .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(jLabel4)
                            .addComponent(comboBulan2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                        .addComponent(buttonLihat))
                    .addGroup(jPanel1Layout.createSequentialGroup()
                        .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(comboBulan, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addComponent(jLabel2))
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                        .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(comboTahun, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addComponent(jLabel3))))
                .addContainerGap())
        );

        jPanel2.setBackground(new java.awt.Color(255, 255, 255));

        jLabel1.setFont(new java.awt.Font("Dialog", 1, 24));
        jLabel1.setText("GRAFIK PERGERAKAN BARANG");

        jLabel5.setFont(new java.awt.Font("Tahoma", 1, 18));
        jLabel5.setText("PENERBIT - PERCETAKAN KANISIUS");

        jLabel6.setFont(new java.awt.Font("Tahoma", 1, 14));
        jLabel6.setText("Jalan Cempaka 9, Deresan, Yogyakarta");

        jLabel7.setIcon(new javax.swing.ImageIcon(getClass().getResource("/gbr/logo.PNG"))); // NOI18N

        javax.swing.GroupLayout jPanel2Layout = new javax.swing.GroupLayout(jPanel2);
        jPanel2.setLayout(jPanel2Layout);
        jPanel2Layout.setHorizontalGroup(
            jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel2Layout.createSequentialGroup()
                .addComponent(jLabel7, javax.swing.GroupLayout.PREFERRED_SIZE, 125, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(jPanel2Layout.createSequentialGroup()
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(jLabel1, javax.swing.GroupLayout.PREFERRED_SIZE, 393, javax.swing.GroupLayout.PREFERRED_SIZE))
                    .addGroup(jPanel2Layout.createSequentialGroup()
                        .addGap(35, 35, 35)
                        .addComponent(jLabel5))
                    .addGroup(jPanel2Layout.createSequentialGroup()
                        .addGap(67, 67, 67)
                        .addComponent(jLabel6)))
                .addContainerGap(44, Short.MAX_VALUE))
        );
        jPanel2Layout.setVerticalGroup(
            jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addComponent(jLabel7)
            .addGroup(jPanel2Layout.createSequentialGroup()
                .addGap(39, 39, 39)
                .addComponent(jLabel1)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jLabel5)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jLabel6))
        );

        buttonBack.setIcon(new javax.swing.ImageIcon(getClass().getResource("/gbr/home-icon.png"))); // NOI18N
        buttonBack.setToolTipText("Kembali ke Home");
        buttonBack.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                buttonBackActionPerformed(evt);
            }
        });

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
                .addContainerGap(21, Short.MAX_VALUE)
                .addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addContainerGap())
            .addComponent(jPanel2, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
            .addGroup(layout.createSequentialGroup()
                .addGap(502, 502, 502)
                .addComponent(buttonBack, javax.swing.GroupLayout.PREFERRED_SIZE, 47, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addContainerGap(19, Short.MAX_VALUE))
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addComponent(jPanel2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addGap(18, 18, 18)
                .addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addGap(18, 18, 18)
                .addComponent(buttonBack, javax.swing.GroupLayout.PREFERRED_SIZE, 43, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addContainerGap(25, Short.MAX_VALUE))
        );

        pack();
    }// </editor-fold>//GEN-END:initComponents

    private void buttonLihatActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_buttonLihatActionPerformed

        // TODO add your handling code here:
        JFrame f = new JFrame("Grafik Penjualan");
        f.add(createChart());
        f.setSize(500, 600);
        f.setVisible(true);
    }//GEN-LAST:event_buttonLihatActionPerformed

    private void comboBulanActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_comboBulanActionPerformed
        // TODO add your handling code here:
    }//GEN-LAST:event_comboBulanActionPerformed

    private void buttonBackActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_buttonBackActionPerformed
        // TODO add your handling code here:
        this.setVisible(false);
        UtamaSQL sql = new UtamaSQL();
        sql.setVisible(true);
    }//GEN-LAST:event_buttonBackActionPerformed

    public void getNamaTabel() {

        bulan = String.valueOf(comboBulan.getSelectedItem());
        tahun = String.valueOf(comboTahun.getSelectedItem());

        if (bulan.equalsIgnoreCase("januari")) {
            idBulan1 = "01";
        } else if (bulan.equalsIgnoreCase("februari")) {
            idBulan1 = "02";
        } else if (bulan.equalsIgnoreCase("maret")) {
            idBulan1 = "03";
        } else if (bulan.equalsIgnoreCase("april")) {
            idBulan1 = "04";
        } else if (bulan.equalsIgnoreCase("mei")) {
            idBulan1 = "05";
        } else if (bulan.equalsIgnoreCase("juni")) {
            idBulan1 = "06";
        } else if (bulan.equalsIgnoreCase("juli")) {
            idBulan1 = "07";
        } else if (bulan.equalsIgnoreCase("agustus")) {
            idBulan1 = "08";
        } else if (bulan.equalsIgnoreCase("september")) {
            idBulan1 = "09";
        } else if (bulan.equalsIgnoreCase("oktober")) {
            idBulan1 = "10";
        } else if (bulan.equalsIgnoreCase("november")) {
            idBulan1 = "11";
        } else if (bulan.equalsIgnoreCase("desember")) {
            idBulan1 = "12";
        }

        subTahun = tahun.substring(2);

        if (idBulan1.equalsIgnoreCase("08")) {
            subBulan = "ags";
        } else {
            subBulan = bulan.substring(0, 3);
        }

        namaTabel1 = subTahun + "" + idBulan1 + "" + subBulan.toLowerCase();
    }

    public void getNamaTabel2() {

        bulan2 = String.valueOf(comboBulan2.getSelectedItem());
        tahun = String.valueOf(comboTahun.getSelectedItem());

        if (bulan2.equalsIgnoreCase("januari")) {
            idBulan2 = "01";
        } else if (bulan2.equalsIgnoreCase("februari")) {
            idBulan2 = "02";
        } else if (bulan2.equalsIgnoreCase("maret")) {
            idBulan2 = "03";
        } else if (bulan2.equalsIgnoreCase("april")) {
            idBulan2 = "04";
        } else if (bulan2.equalsIgnoreCase("mei")) {
            idBulan2 = "05";
        } else if (bulan2.equalsIgnoreCase("juni")) {
            idBulan2 = "06";
        } else if (bulan2.equalsIgnoreCase("juli")) {
            idBulan2 = "07";
        } else if (bulan2.equalsIgnoreCase("agustus")) {
            idBulan2 = "08";
        } else if (bulan2.equalsIgnoreCase("september")) {
            idBulan2 = "09";
        } else if (bulan2.equalsIgnoreCase("oktober")) {
            idBulan2 = "10";
        } else if (bulan2.equalsIgnoreCase("november")) {
            idBulan2 = "11";
        } else if (bulan2.equalsIgnoreCase("desember")) {
            idBulan2 = "12";
        }

        subTahun = tahun.substring(2);

        if (idBulan2.equalsIgnoreCase("08")) {
            subBulan2 = "ags";
        } else {
            subBulan2 = bulan2.substring(0, 3);
        }
        namaTabel2 = subTahun + "" + idBulan2 + "" + subBulan2.toLowerCase();
    }

    public ArrayList<DataChart> getDataPenjualan() {
        String tabel, bln = "";

        arrayDataChart = new ArrayList<DataChart>();

        getNamaTabel();
//        System.out.println(idBulan1 + "  " + namaTabel1);

        getNamaTabel2();
//        System.out.println(idBulan2 + "  " + namaTabel2);

        int noBulan1 = Integer.parseInt(idBulan1);
        int noBulan2 = Integer.parseInt(idBulan2);

        for (int i = noBulan1; i <= noBulan2; i++) {
            if (noBulan1 == 1) {
                bln = "jan";
            } else if (noBulan1 == 2) {
                bln = "feb";
            } else if (noBulan1 == 3) {
                bln = "mar";
            } else if (noBulan1 == 4) {
                bln = "apr";
            } else if (noBulan1 == 5) {
                bln = "mei";
            } else if (noBulan1 == 6) {
                bln = "jun";
            } else if (noBulan1 == 7) {
                bln = "jul";
            } else if (noBulan1 == 8) {
                bln = "ags";
            } else if (noBulan1 == 9) {
                bln = "sep";
            } else if (noBulan1 == 10) {
                bln = "okt";
            } else if (noBulan1 == 11) {
                bln = "nov";
            } else if (noBulan1 == 12) {
                bln = "des";
            }
            noBulan1++;
            tabel = subTahun + "0" + i + bln;

            for (int j = 1; j <= 9; j++) {
                DataChart dataChart = new DataChart();
                try {
                    Koneksi kon = new Koneksi();
                    Connection conn = kon.open();
                    Statement st = conn.createStatement();

                    String query = "select * from " + tabel + " where tipe = '" + j + "'";
                    ResultSet res = st.executeQuery(query);

                    while (res.next()) {
                        jml = Double.parseDouble(res.getString("jumlah"));
                        jumlah = jumlah + jml;
                    }
                    //setData 
                    dataChart.setIdBulan(i);
                    dataChart.setJumlah(jumlah);
                    dataChart.setTipe(j);

                    //input arraylist
                    arrayDataChart.add(dataChart);
                } catch (SQLException ex) {
                    Logger.getLogger(GrafikBulan.class.getName()).log(Level.SEVERE, null, ex);
                }

//                System.out.println(tabel + " jumlah tipe " + j + " : " + jumlah);

            }

        }
        return arrayDataChart;
    }

    public void bacaDataArrayList() {
        getDataPenjualan();
        DataChart data;
//        int tipe = 1;
        for (int i = 0; i < arrayDataChart.size(); i++) {
            data = arrayDataChart.get(i);

            System.out.println("id Bulan  : " + data.getIdBulan());
            System.out.println("jumlah   : " + data.getJumlah());
            System.out.println("tipe   : " + data.getTipe());
            System.out.println("\n");
        }
    }

    private XYDataset xyDataset() {
        getDataPenjualan();
        XYSeriesCollection xyCollect = new XYSeriesCollection();

        XYSeries series1 = new XYSeries("Tipe 1");
        XYSeries series2 = new XYSeries("Tipe 2");
        XYSeries series3 = new XYSeries("Tipe 3");
        XYSeries series4 = new XYSeries("Tipe 4");
        XYSeries series5 = new XYSeries("Tipe 5");
        XYSeries series6 = new XYSeries("Tipe 6");
        XYSeries series7 = new XYSeries("Tipe 7");
        XYSeries series8 = new XYSeries("Tipe 8");
        XYSeries series9 = new XYSeries("Tipe 9");

        DataChart dataChart;
        for (int i = 0; i < arrayDataChart.size(); i++) {
            dataChart = arrayDataChart.get(i);
            if (dataChart.getTipe() == 1) {
                series1.add(dataChart.getIdBulan(), dataChart.getJumlah());
            } else if (dataChart.getTipe() == 2) {
                series2.add(dataChart.getIdBulan(), dataChart.getJumlah());
            } else if (dataChart.getTipe() == 3) {
                series3.add(dataChart.getIdBulan(), dataChart.getJumlah());
            } else if (dataChart.getTipe() == 4) {
                series4.add(dataChart.getIdBulan(), dataChart.getJumlah());
            } else if (dataChart.getTipe() == 5) {
                series5.add(dataChart.getIdBulan(), dataChart.getJumlah());
            } else if (dataChart.getTipe() == 6) {
                series6.add(dataChart.getIdBulan(), dataChart.getJumlah());
            } else if (dataChart.getTipe() == 7) {
                series7.add(dataChart.getIdBulan(), dataChart.getJumlah());
            } else if (dataChart.getTipe() == 8) {
                series8.add(dataChart.getIdBulan(), dataChart.getJumlah());
            } else if (dataChart.getTipe() == 9) {
                series9.add(dataChart.getIdBulan(), dataChart.getJumlah());
            }
        }

        xyCollect.addSeries(series1);
        xyCollect.addSeries(series2);
        xyCollect.addSeries(series3);
        xyCollect.addSeries(series4);
        xyCollect.addSeries(series5);
        xyCollect.addSeries(series6);
        xyCollect.addSeries(series7);
        xyCollect.addSeries(series8);
        xyCollect.addSeries(series9);

        return xyCollect;
    }

    private ChartPanel createChart() {
        String namaChart = "Pergerakan Barang";
        String xLabel = "Bulan";
        String yLabel = "Jumlah";

        XYDataset dataset = xyDataset();

        JFreeChart chart = ChartFactory.createXYLineChart(namaChart, xLabel, yLabel, dataset, PlotOrientation.VERTICAL,
                true, false, false);

        XYPlot plot = chart.getXYPlot();
        XYLineAndShapeRenderer ren = new XYLineAndShapeRenderer();
        plot.setRenderer(ren);
        plot.setBackgroundPaint(Color.LIGHT_GRAY);

        ChartPanel panel = new ChartPanel(chart);
        return panel;
    }

    public static void main(String args[]) {
        try {
            UIManager.setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsLookAndFeel");
        } catch (ClassNotFoundException ex) {
            java.util.logging.Logger.getLogger(GrafikBulan.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (InstantiationException ex) {
            java.util.logging.Logger.getLogger(GrafikBulan.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (IllegalAccessException ex) {
            java.util.logging.Logger.getLogger(GrafikBulan.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (javax.swing.UnsupportedLookAndFeelException ex) {
            java.util.logging.Logger.getLogger(GrafikBulan.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        }
        //</editor-fold>

        /* Create and display the form */
        java.awt.EventQueue.invokeLater(new Runnable() {

            @Override
            public void run() {
                new GrafikBulan().setVisible(true);
            }
        });
    }
    // Variables declaration - do not modify//GEN-BEGIN:variables
    private javax.swing.JButton buttonBack;
    private javax.swing.JButton buttonLihat;
    private javax.swing.JComboBox comboBulan;
    private javax.swing.JComboBox comboBulan2;
    private javax.swing.JComboBox comboTahun;
    private javax.swing.JLabel jLabel1;
    private javax.swing.JLabel jLabel2;
    private javax.swing.JLabel jLabel3;
    private javax.swing.JLabel jLabel4;
    private javax.swing.JLabel jLabel5;
    private javax.swing.JLabel jLabel6;
    private javax.swing.JLabel jLabel7;
    private javax.swing.JPanel jPanel1;
    private javax.swing.JPanel jPanel2;
    // End of variables declaration//GEN-END:variables
}
